home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
FM Towns: Free Software Collection 4
/
FM Towns Free Software Collection 4 - Disc 1.iso
/
fb386
/
rgb16tif
/
rgb16.bas
next >
Wrap
BASIC Source File
|
1991-10-18
|
5KB
|
118 lines
10 ' RGB16プログラム (1991.8.15 PROGRAMED BY K.FUJITA)
20 '
30 '
40 ' * このプログラムはジーズ・スタッフのベタファイルを
50 ' 合成して完全な16色のTIFFファイルに
60 ' 変換します。
70 '
80 '
90 '
100 '
110 SCREEN@0:CLEAR,,,600000
120 A=INT((INT(647/8)*480+2-1)/2):B=INT((INT(647/8)*480*4+2-1)/2)
130 DIM B0%(A),R0%(A),G0%(A)
140 DIM B1%(A),R1%(A),G1%(A)
150 DIM A%(B)
160 '
170 CLS:WIDTH 80,25:GOSUB 680
180 CLS:COLOR 6:PRINT "ジーズスタッフデータのドライブ&ディレクトリ ";ZDR$+PAT$:COLOR 7:FILES ZDR$+PAT$:PRINT:INPUT"ファイル名 ",NA$
190 IF NA$="" THEN 170
200 IF NA$<>".." THEN 230
210 IF T1<>1 THEN T1=T1-1
220 GOSUB 710:GOTO 180
230 CLS:LOCATE 0,21:ON ERROR GOTO 250:GOTO 270
240 '
250 IF ERR=21 THEN RESUME NEXT ELSE GOSUB 920:RESUME 180
260 '
270 LOAD@ ZDR$+PAT$+NA$+".B1",B0%
280 LOAD@ ZDR$+PAT$+NA$+".B1",B1%:PRINT "B1 END";" ";
290 LOAD@ ZDR$+PAT$+NA$+".R1",R0%
300 LOAD@ ZDR$+PAT$+NA$+".R1",R1%:PRINT "R1 END";" ";
310 LOAD@ ZDR$+PAT$+NA$+".G1",G0%
320 LOAD@ ZDR$+PAT$+NA$+".G1",G1%:PRINT "G1 END"
330 '
340 LOAD@ ZDR$+PAT$+NA$+".E1",A%
350 PUT@ (0,0)-(639,479),A%,PSET,7:GET@A (0,0)-(639,479),A%
360 '
370 ON ERROR GOTO 0
380 '
390 CLS:PUT@ (0,0)-(639,479),B1%,PSET,1:PUT@A (0,0)-(639,479),A%,AND
400 GET@ (0,0)-(639,479),B1%,1
410 CLS:PUT@ (0,0)-(639,479),R1%,PSET,2:PUT@A (0,0)-(639,479),A%,AND
420 GET@ (0,0)-(639,479),R1%,2
430 CLS:PUT@ (0,0)-(639,479),G1%,PSET,4:PUT@A (0,0)-(639,479),A%,AND
440 GET@ (0,0)-(639,479),G1%,4
450 CLS:PUT@A (0,0)-(639,479),A%,PSET
460 PUT@A (0,0)-(639,479),A%,NOT:GET@A (0,0)-(639,479),A%
470 '
480 CLS:PUT@ (0,0)-(639,479),B0%,PSET,1:PUT@A (0,0)-(639,479),A%,AND
490 GET@ (0,0)-(639,479),B0%,1
500 CLS:PUT@ (0,0)-(639,479),R0%,PSET,2:PUT@A (0,0)-(639,479),A%,AND
510 GET@ (0,0)-(639,479),R0%,2
520 CLS:PUT@ (0,0)-(639,479),G0%,PSET,4:PUT@A (0,0)-(639,479),A%,AND
530 GET@ (0,0)-(639,479),G0%,4
540 CLS:PUT@A (0,0)-(639,479),A%,PSET
550 PUT@A (0,0)-(639,479),A%,NOT:GET@ (0,0)-(639,479),A%,7
560 '
570 CLS
580 PUT@ (0,0)-(639,479),B0%,OR,%1
590 PUT@ (0,0)-(639,479),B1%,OR,%9
600 PUT@ (0,0)-(639,479),R0%,OR,%2
610 PUT@ (0,0)-(639,479),R1%,OR,%10
620 PUT@ (0,0)-(639,479),G0%,OR,%4
630 PUT@ (0,0)-(639,479),G1%,OR,%12
640 PUT@ (0,0)-(639,479),A%,OR,%8
650 ON ERROR GOTO 970
660 SAVE@ SDR$+PAT2$+NA$+".TIF",(0,0)-(639,399):GOTO 180
670 CLS:PRINT ERL,ERR:END
680 '
690 PAT$(0)="\":PAT2$(0)="\":T1=1:T2=1:DC=0:ZDR$="":SDR$=""
700 CLS:INPUT"ジーズスタッフのデータがあるドライブは? ",ZDR$
705 ZDR$=ZDR$+":"
710 ON ERROR GOTO 1060
720 CLS:COLOR 6:PRINT "ジーズスタッフデータのドライブ&ディレクトリ ";ZDR$+PAT$(T1-1):COLOR 7:FILES ZDR$+PAT$(T1-1)
730 PRINT
740 INPUT "ディレクトリ名は(必要無い時はCR)? ",PA$:IF PA$="" THEN 770
750 IF PA$=".." THEN IF T1=1 THEN 690 ELSE T1=T1-1:GOTO 720
760 PAT$(T1)=PAT$(T1-1)+PA$+"\":T1=T1+1:GOTO 720
770 IF DC=1 THEN 780 ELSE CLS:INPUT"セーブ用のドライブは? ",SDR$
775 SDR$=SDR$+":"
780 ON ERROR GOTO 1100
790 CLS:COLOR 6:PRINT "セーブ用のドライブ&ディレクトリ ";SDR$+PAT2$(T2-1):COLOR 7:FILES SDR$+PAT2$(T2-1)
800 PRINT
810 INPUT "ディレクトリ名は(必要無い時はCR)? ",PA$:IF PA$="" THEN 850
820 IF PA$<>".." THEN 840
830 IF T2=1 THEN DC=0:GOTO 770 ELSE T2=T2-1:GOTO 790
840 PAT2$(T2)=PAT2$(T2-1)+PA$+"\":T2=T2+1:GOTO 790
850 CLS
860 PAT$=PAT$(T1-1):PAT2$=PAT2$(T2-1):PRINT ZDR$+PAT$
870 PRINT :IF LEN(PAT$)<LEN(PAT2$) THEN L=LEN(PAT$) ELSE L=LEN(PAT2$)
880 PRINT SPACE$(L/2)+"↓":PRINT
890 PRINT SDR$+PAT2$
900 PRINT :INPUT"これで良いですか(悪い時は N キー) ",NA$:IF NA$="N" OR NA$="n" THEN CLS:GOTO 680
910 DC=1:RETURN
920 '
930 CLS:COLOR 2:LOCATE 0,10:IF ERR=63 THEN PRINT "指定のファイルが見つかりません":GOTO 950
940 PRINT "エラー";ERR;" が発生!"
950 COLOR 6:PRINT :PRINT "何かキーを押して下さい":COLOR 6
960 A$=INKEY$:IF A$="" THEN 960 ELSE RETURN
970 '
980 IF ERR<>64 THEN GOSUB 920:RESUME 180
990 GET@A (0,0)-(639,479),A%
1000 CLS:COLOR 6:LOCATE 0,10:PRINT "同じファイル名があります。":COLOR 7
1010 INPUT"上書きしますか?(する時は Y)",A$
1020 IF A$<>"Y" AND A$<>"y" AND A$<>"ん" THEN RESUME 180
1030 KILL SDR$+PAT2$+NA$+".TIF"
1040 PUT@A (0,0)-(639,479),A%
1050 RESUME 660
1060 '
1070 IF ERR=60 OR ERR=72 THEN RESUME 690
1080 IF ERR<>63 THEN GOSUB 920
1090 T1=T1-1:IF T1=0 THEN T1=1:RESUME 700
1095 RESUME 720
1100 '
1110 IF ERR=60 OR ERR=72 THEN SDR$="":DC=0:RESUME 770
1120 IF ERR<>63 THEN GOSUB 920
1130 T2=T2-1:IF T2=0 THEN T2=1:RESUME 770
1140 RESUME 790